Doc2Vecについて今まで4回にわたって記事を書いてきました。
今回は前回までの簡単なまとめと、Doc2Vecを使う際の問題点について記述していきたいと思います。
Doc2Vec記事のまとめ
Pythonのgensimというライブラリを用いることで簡単にDoc2Vecという文書をベクトル化できる機械学習があります。(記事1)
使用するには学習データとして分かち書き等で単語ごとに区切ったデータが用意する必要があります。
形態素解析器を用いれば簡単に分かち書きしたデータを作成することができます。(記事2)
文書を学習しベクトル化することで類似している文書の検索ができます。(記事2)
学習したモデルの評価を行うための一例について紹介しました。(記事3)
モデルの精度を上げるためのパラメータ調整の大切さを紹介しました。(記事4)
学習時のパラメータによって多く結果が変わることがあるのでパラメータの調整は重要であることが分かりました。
学習結果があまり良くなかった場合もパラメータを変更して再度試してみると良くなるかもしれません。(記事4)
ちょっとした問題点
実は、gensimのDoc2Vecには少々問題点があります。
それは学習の再現性がないことです、実際にいろいろ試してみるまで知らなかったのですが、gensimのDoc2Vecは学習の初期段階に内部でランダムな値を使用しているらしく、全く同じデータを用いて学習を行った場合でも出力されるモデルに多少の誤差が生じてしまいます。
この誤差をできる限り減らす方法としては、学習時のパラメータにある”epochs”というパラメータの値を大きくすることです。
値を大きくすることで学習時間が長くはなってしまいますが誤差を小さくすることができます。”epochs”とは学習時の反復数を決めるもので、数が大きくなるほど反復数が増え、結果が収束しやすくなります。
最後に
5回にわたりDoc2Vecの記事を書いてきました。
データを用意するのは少し大変ですが、gensimのDoc2Vecは非常に簡単に実装し使用することができます。
文書をベクトル化して何か使えるのか?という話はなかなか難しい部分ではありますが、ここまで読んでくださった皆様も一度試しに触れてみてはいかがでしょうか。